/**
 * 
 */
package com.ai.aop;

import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

/**
 * Class Name : AopTest<br>
 * 
 * Description : 这里记述class说明<br>
 * 
 * @author cyj
 * @version $Revision$
 * @see
 *
 */
@Aspect
@Component
public class DBLogAspect {

    // @Resource
    // private DbLogService dbLogService;
    // @Resource
    // private ThreadPoolTaskExecutor taskExecutor;
    //
    // /**
    // * Description ： 写入数据库操作日志<br>
    // *
    // * cyj
    // *
    // * @param j
    // * @since
    // *
    // */
    // private void doWriteLog(JoinPoint j, Integer operatorType) {
    // Object parms[] = j.getArgs();
    // if (parms.length > 0) {
    // Object parm = parms[0];
    // Long id = null;
    // try {
    // // 获取参数ID
    // if (parm instanceof java.lang.Long) {
    // id = (Long) parm;
    // } else {
    // id = (Long) MethodUtils.invokeMethod(parm, "getId", null);
    // }
    // if (id != null) {
    // // 根据ID查询被修改的数据
    // Object vo = MethodUtils.invokeMethod(j.getTarget(), "selectByPrimaryKey",
    // id);
    // DbLog dbLog = new DbLog();
    // JSONObject parmJson = new JSONObject();
    // for (int i = 0; i < parms.length; i++) {
    // parmJson.put(parms[i].getClass().getSimpleName(),
    // JSONObject.toJSONString(parms[i]));
    // }
    // // 构造日志对象
    // String methodName = j.getSignature().getName();
    // dbLog.setTableName(vo.getClass().getSimpleName());
    // dbLog.setMethodClass(j.getTarget().getClass().getName());
    // dbLog.setMethodName(methodName);
    // dbLog.setMethodParm(parmJson.toJSONString());
    // dbLog.setOperatorType(operatorType);
    // dbLog.setRowId(id);
    // dbLog.setRowData(JSONObject.toJSONString(vo));
    // dbLog.setSource(DbLogConstants.SOURCE_BACKEND);
    // dbLog.setOperatorTime(new Date());
    // taskExecutor.execute(new DbLogThread(dbLogService, dbLog));
    // }
    // } catch (Exception e) {
    // e.printStackTrace();
    // }
    // }
    // }
    //
    // /**
    // * Description ： 更新日志<br>
    // *
    // * cyj
    // *
    // * @param j
    // * @since
    // *
    // */
    // @Before("execution(* com.ai.manager..*.update*(..))")
    // public void updateLog(JoinPoint j) {
    // this.doWriteLog(j, DbLogConstants.UPDATE_OPT);
    // }
    //
    // /**
    // * Description ：删除日志<br>
    // *
    // * cyj
    // *
    // * @param j
    // * @since
    // *
    // */
    // @Before("execution(* com.ai.manager..*.del*(..))")
    // public void deleteLog(JoinPoint j) {
    // this.doWriteLog(j, DbLogConstants.DELETE_OPT);
    // }
    // public ThreadPoolTaskExecutor getTaskExecutor() {
    // return taskExecutor;
    // }
    //
    // public void setTaskExecutor(ThreadPoolTaskExecutor taskExecutor) {
    // this.taskExecutor = taskExecutor;
    // }
}
